package ve.usb.coord.colision.hibernate;

import java.util.HashSet;
import java.util.Set;



public class Oferta implements java.io.Serializable {

    /** Creates a new instance of Oferta */
    public Oferta() {}

    /**
     * Holds value of property idOferta.
     */
    private long idOferta;

    /**
     * Getter for property idOferta.
     * @return Value of property idOferta.
     */
    public long getIdOferta() {
        return this.idOferta;
    }

    /**
     * Setter for property idOferta.
     * @param idOferta New value of property idOferta.
     */
    public void setIdOferta(long idOferta) {
        this.idOferta = idOferta;
    }
    /**
     * Holds value of property periodo.
     */
    private Periodo periodo;

    /**
     * Getter for property periodo.
     * @return Value of property periodo.
     */
    public Periodo getPeriodo() {
        return this.periodo;
    }

    /**
     * Setter for property periodo.
     * @param periodo New value of property periodo.
     */
    public void setPeriodo(Periodo periodo) {
        this.periodo = periodo;
    }
    /**
     * Holds value of property planDeEstudios.
     */
    private PlanDeEstudios planDeEstudios;

    /**
     * Getter for property planDeEstudios.
     * @return Value of property planDeEstudios.
     */
    public PlanDeEstudios getPlanDeEstudios() {
        return this.planDeEstudios;
    }

    /**
     * Setter for property planDeEstudios.
     * @param planDeEstudios New value of property planDeEstudios.
     */
    public void setPlanDeEstudios(PlanDeEstudios planDeEstudios) {
        this.planDeEstudios = planDeEstudios;
    }
    /**
     * Holds value of property requisito.
     */
    private Requisitos requisito;

    /**
     * Getter for property requisito.
     * @return Value of property requisito.
     */
    public Requisitos getRequisito() {
        return this.requisito;
    }

    /**
     * Setter for property requisito.
     * @param requisito New value of property requisito.
     */
    public void setRequisito(Requisitos requisito) {
        this.requisito = requisito;
    }
    /**
     * Holds value of property horario.
     */
    private Set<Horario> horario = new HashSet<Horario>();

    /**
     * Getter for property horario.
     * @return Value of property horario.
     */
    public Set<Horario> getHorario() {
        return this.horario;
    }

    /**
     * Setter for property horario.
     * @param horario New value of property horario.
     */
    public void setHorario(Set<Horario> horario) {
        this.horario = horario;
    }

    /**
     * Add an element to set property horario
     * and sets elements's property oferta.
     * @param element New element to be added to horario.
     */
    public void addToHorario(Horario element) {
        element.setOferta(this);
        horario.add(element);
    }

    /**
     * Removes and old element from set horario 
     * and sets element's property oferta to null.
     * @param old The element to be removed from horario
     */
    public void removeFromHorario(Horario old) {
        horario.remove(old);
        old.setOferta(null);
    }

}